#ifndef WORKER_H
#define WORKER_H

#include <boost/circular_buffer.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/lock_guard.hpp>
#include <iostream>
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/uniform_int_distribution.hpp>
#include <iostream>
#include <functional>
#include "plotdata2d.h"

class MainWindow;

class Worker :public Glib::Object{
        Worker  & operator = (const Worker  &) = delete;                                //запрет оператора присваивания
        Worker (const Worker &source) = delete;                                         //запрет конструктора копирования
        boost::mutex mutex;
        bool cmd_stop;
        bool stopping;
        bool m_managed;
    protected:


    public:
        Worker();
    //    PlotData2D* PlotData;
        PlotData2D* PlotData,*PlotData1;
        void DoWork (MainWindow* caller);
        PlotData2D* GetPlotData();
         PlotData2D* GetPlotData1();
        virtual void set_manage();
        void print();
};



#endif // WORKER_H
